[INFO] cloning repository https://github.com/oawad79/ecs-custom
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/oawad79/ecs-custom" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foawad79%2Fecs-custom", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foawad79%2Fecs-custom'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 57b835471d84e1b2dfe79824fd1d327b11e1cffb
[INFO] fixing oawad79/ecs-custom against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foawad79%2Fecs-custom" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/oawad79/ecs-custom
[INFO] finished tweaking git repo https://github.com/oawad79/ecs-custom
[INFO] tweaked toml for git repo https://github.com/oawad79/ecs-custom written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/oawad79/ecs-custom on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/oawad79/ecs-custom already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded clap_lex v0.7.6
[INFO] [stderr]   Downloaded clap v4.5.53
[INFO] [stderr]   Downloaded clap_builder v4.5.53
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 9f22a09d18875750b8e391d6288543dc7571e4a251679802bdfc91d112f1ada0
[INFO] running `Command { std: "docker" "start" "9f22a09d18875750b8e391d6288543dc7571e4a251679802bdfc91d112f1ada0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9f22a09d18875750b8e391d6288543dc7571e4a251679802bdfc91d112f1ada0" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9f22a09d18875750b8e391d6288543dc7571e4a251679802bdfc91d112f1ada0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9f22a09d18875750b8e391d6288543dc7571e4a251679802bdfc91d112f1ada0" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]    Compiling slotmap v1.1.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]     Checking regex-syntax v0.8.8
[INFO] [stderr]     Checking clap_lex v0.7.6
[INFO] [stderr]     Checking anstyle v1.0.13
[INFO] [stderr]     Checking memchr v2.7.6
[INFO] [stderr]     Checking clap_builder v4.5.53
[INFO] [stderr]     Checking ecs-basic v0.1.0 (/opt/rustwide/workdir/ecs-basic)
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |         (*ptr).get_component_mut::<T>(index).unwrap()
[INFO] [stdout]    |         ^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> ecs-basic/src/query.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 42 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 43 | |         index: usize,
[INFO] [stdout] 44 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `query::Query::fetch` is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:63:10
[INFO] [stdout]    |
[INFO] [stdout] 63 |         (Q1::fetch(&mut *ptr, index), Q2::fetch(&mut *ptr, index))
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> ecs-basic/src/query.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 59 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 60 | |         index: usize,
[INFO] [stdout] 61 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:63:25
[INFO] [stdout]    |
[INFO] [stdout] 63 |         (Q1::fetch(&mut *ptr, index), Q2::fetch(&mut *ptr, index))
[INFO] [stdout]    |                         ^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `query::Query::fetch` is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:63:39
[INFO] [stdout]    |
[INFO] [stdout] 63 |         (Q1::fetch(&mut *ptr, index), Q2::fetch(&mut *ptr, index))
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:63:54
[INFO] [stdout]    |
[INFO] [stdout] 63 |         (Q1::fetch(&mut *ptr, index), Q2::fetch(&mut *ptr, index))
[INFO] [stdout]    |                                                      ^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `query::Query::fetch` is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |             Q1::fetch(&mut *ptr, index),
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> ecs-basic/src/query.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 75 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 76 | |         index: usize,
[INFO] [stdout] 77 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:80:28
[INFO] [stdout]    |
[INFO] [stdout] 80 |             Q1::fetch(&mut *ptr, index),
[INFO] [stdout]    |                            ^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `query::Query::fetch` is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |             Q2::fetch(&mut *ptr, index),
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:81:28
[INFO] [stdout]    |
[INFO] [stdout] 81 |             Q2::fetch(&mut *ptr, index),
[INFO] [stdout]    |                            ^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `query::Query::fetch` is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |             Q3::fetch(&mut *ptr, index),
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:82:28
[INFO] [stdout]    |
[INFO] [stdout] 82 |             Q3::fetch(&mut *ptr, index),
[INFO] [stdout]    |                            ^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `query::Query::fetch` is unsafe and requires unsafe block
[INFO] [stdout]    --> ecs-basic/src/query.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |             Q1::fetch(&mut *ptr, index),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> ecs-basic/src/query.rs:97:5
[INFO] [stdout]     |
[INFO] [stdout]  97 | /     unsafe fn fetch<'a>(
[INFO] [stdout]  98 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout]  99 | |         index: usize,
[INFO] [stdout] 100 | |     ) -> Self::Item<'a> {
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> ecs-basic/src/query.rs:103:28
[INFO] [stdout]     |
[INFO] [stdout] 103 |             Q1::fetch(&mut *ptr, index),
[INFO] [stdout]     |                            ^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `query::Query::fetch` is unsafe and requires unsafe block
[INFO] [stdout]    --> ecs-basic/src/query.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |             Q2::fetch(&mut *ptr, index),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> ecs-basic/src/query.rs:104:28
[INFO] [stdout]     |
[INFO] [stdout] 104 |             Q2::fetch(&mut *ptr, index),
[INFO] [stdout]     |                            ^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `query::Query::fetch` is unsafe and requires unsafe block
[INFO] [stdout]    --> ecs-basic/src/query.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |             Q3::fetch(&mut *ptr, index),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> ecs-basic/src/query.rs:105:28
[INFO] [stdout]     |
[INFO] [stdout] 105 |             Q3::fetch(&mut *ptr, index),
[INFO] [stdout]     |                            ^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `query::Query::fetch` is unsafe and requires unsafe block
[INFO] [stdout]    --> ecs-basic/src/query.rs:106:13
[INFO] [stdout]     |
[INFO] [stdout] 106 |             Q4::fetch(&mut *ptr, index),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> ecs-basic/src/query.rs:106:28
[INFO] [stdout]     |
[INFO] [stdout] 106 |             Q4::fetch(&mut *ptr, index),
[INFO] [stdout]     |                            ^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `Query::fetch`
[INFO] [stdout]   --> ecs-basic/src/query.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | /     unsafe fn fetch<'a>(
[INFO] [stdout]  9 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 10 | |         index: usize,
[INFO] [stdout] 11 | |     ) -> Self::Item<'a>;
[INFO] [stdout]    | |________________________^ associated function `Query::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<&T as Query>::fetch`
[INFO] [stdout]   --> ecs-basic/src/query.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 27 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 28 | |         index: usize,
[INFO] [stdout] 29 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<&T as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<&mut T as Query>::fetch`
[INFO] [stdout]   --> ecs-basic/src/query.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 42 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 43 | |         index: usize,
[INFO] [stdout] 44 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<&mut T as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(Q1, Q2) as Query>::fetch`
[INFO] [stdout]   --> ecs-basic/src/query.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 59 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 60 | |         index: usize,
[INFO] [stdout] 61 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<(Q1, Q2) as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(Q1, Q2, Q3) as Query>::fetch`
[INFO] [stdout]   --> ecs-basic/src/query.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 75 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 76 | |         index: usize,
[INFO] [stdout] 77 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<(Q1, Q2, Q3) as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(Q1, Q2, Q3, Q4) as Query>::fetch`
[INFO] [stdout]    --> ecs-basic/src/query.rs:97:5
[INFO] [stdout]     |
[INFO] [stdout]  97 | /     unsafe fn fetch<'a>(
[INFO] [stdout]  98 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout]  99 | |         index: usize,
[INFO] [stdout] 100 | |     ) -> Self::Item<'a> {
[INFO] [stdout]     | |_______________________^ associated function `<(Q1, Q2, Q3, Q4) as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `ComponentBundle::init_archetype`
[INFO] [stdout]    --> ecs-basic/src/world.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     fn init_archetype(archetype: &mut crate::archetype::Archetype);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `ComponentBundle::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `ComponentBundle::insert_into`
[INFO] [stdout]    --> ecs-basic/src/world.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 119 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `ComponentBundle::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T,) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-basic/src/world.rs:128:5
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T,) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T,) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-basic/src/world.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T,) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-basic/src/world.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T1, T2) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-basic/src/world.rs:148:5
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T1, T2) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-basic/src/world.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 159 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T1, T2, T3) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-basic/src/world.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T1, T2, T3) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3, T4) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-basic/src/world.rs:182:5
[INFO] [stdout]     |
[INFO] [stdout] 182 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T1, T2, T3, T4) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3, T4) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-basic/src/world.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 189 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T1, T2, T3, T4) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `entities` is never used
[INFO] [stdout]   --> ecs-basic/src/archetype.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Archetype {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn entities(&self) -> &[crate::Entity] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> ecs-basic/src/world.rs:99:28
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub fn query<Q: Query>(&mut self) -> QueryIter<Q> {
[INFO] [stdout]    |                            ^^^^^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub fn query<Q: Query>(&mut self) -> QueryIter<'_, Q> {
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |         (*ptr).get_component_mut::<T>(index).unwrap()
[INFO] [stdout]    |         ^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> ecs-basic/src/query.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 42 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 43 | |         index: usize,
[INFO] [stdout] 44 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `query::Query::fetch` is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:63:10
[INFO] [stdout]    |
[INFO] [stdout] 63 |         (Q1::fetch(&mut *ptr, index), Q2::fetch(&mut *ptr, index))
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> ecs-basic/src/query.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 59 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 60 | |         index: usize,
[INFO] [stdout] 61 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:63:25
[INFO] [stdout]    |
[INFO] [stdout] 63 |         (Q1::fetch(&mut *ptr, index), Q2::fetch(&mut *ptr, index))
[INFO] [stdout]    |                         ^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `query::Query::fetch` is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:63:39
[INFO] [stdout]    |
[INFO] [stdout] 63 |         (Q1::fetch(&mut *ptr, index), Q2::fetch(&mut *ptr, index))
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:63:54
[INFO] [stdout]    |
[INFO] [stdout] 63 |         (Q1::fetch(&mut *ptr, index), Q2::fetch(&mut *ptr, index))
[INFO] [stdout]    |                                                      ^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `query::Query::fetch` is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |             Q1::fetch(&mut *ptr, index),
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> ecs-basic/src/query.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 75 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 76 | |         index: usize,
[INFO] [stdout] 77 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:80:28
[INFO] [stdout]    |
[INFO] [stdout] 80 |             Q1::fetch(&mut *ptr, index),
[INFO] [stdout]    |                            ^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `query::Query::fetch` is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |             Q2::fetch(&mut *ptr, index),
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:81:28
[INFO] [stdout]    |
[INFO] [stdout] 81 |             Q2::fetch(&mut *ptr, index),
[INFO] [stdout]    |                            ^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `query::Query::fetch` is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |             Q3::fetch(&mut *ptr, index),
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> ecs-basic/src/query.rs:82:28
[INFO] [stdout]    |
[INFO] [stdout] 82 |             Q3::fetch(&mut *ptr, index),
[INFO] [stdout]    |                            ^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `query::Query::fetch` is unsafe and requires unsafe block
[INFO] [stdout]    --> ecs-basic/src/query.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |             Q1::fetch(&mut *ptr, index),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> ecs-basic/src/query.rs:97:5
[INFO] [stdout]     |
[INFO] [stdout]  97 | /     unsafe fn fetch<'a>(
[INFO] [stdout]  98 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout]  99 | |         index: usize,
[INFO] [stdout] 100 | |     ) -> Self::Item<'a> {
[INFO] [stdout]     | |_______________________^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> ecs-basic/src/query.rs:103:28
[INFO] [stdout]     |
[INFO] [stdout] 103 |             Q1::fetch(&mut *ptr, index),
[INFO] [stdout]     |                            ^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `query::Query::fetch` is unsafe and requires unsafe block
[INFO] [stdout]    --> ecs-basic/src/query.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |             Q2::fetch(&mut *ptr, index),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> ecs-basic/src/query.rs:104:28
[INFO] [stdout]     |
[INFO] [stdout] 104 |             Q2::fetch(&mut *ptr, index),
[INFO] [stdout]     |                            ^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `query::Query::fetch` is unsafe and requires unsafe block
[INFO] [stdout]    --> ecs-basic/src/query.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |             Q3::fetch(&mut *ptr, index),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> ecs-basic/src/query.rs:105:28
[INFO] [stdout]     |
[INFO] [stdout] 105 |             Q3::fetch(&mut *ptr, index),
[INFO] [stdout]     |                            ^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `query::Query::fetch` is unsafe and requires unsafe block
[INFO] [stdout]    --> ecs-basic/src/query.rs:106:13
[INFO] [stdout]     |
[INFO] [stdout] 106 |             Q4::fetch(&mut *ptr, index),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> ecs-basic/src/query.rs:106:28
[INFO] [stdout]     |
[INFO] [stdout] 106 |             Q4::fetch(&mut *ptr, index),
[INFO] [stdout]     |                            ^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `Query::fetch`
[INFO] [stdout]   --> ecs-basic/src/query.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | /     unsafe fn fetch<'a>(
[INFO] [stdout]  9 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 10 | |         index: usize,
[INFO] [stdout] 11 | |     ) -> Self::Item<'a>;
[INFO] [stdout]    | |________________________^ associated function `Query::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<&T as Query>::fetch`
[INFO] [stdout]   --> ecs-basic/src/query.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 27 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 28 | |         index: usize,
[INFO] [stdout] 29 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<&T as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<&mut T as Query>::fetch`
[INFO] [stdout]   --> ecs-basic/src/query.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 42 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 43 | |         index: usize,
[INFO] [stdout] 44 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<&mut T as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(Q1, Q2) as Query>::fetch`
[INFO] [stdout]   --> ecs-basic/src/query.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 59 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 60 | |         index: usize,
[INFO] [stdout] 61 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<(Q1, Q2) as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(Q1, Q2, Q3) as Query>::fetch`
[INFO] [stdout]   --> ecs-basic/src/query.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 75 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 76 | |         index: usize,
[INFO] [stdout] 77 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<(Q1, Q2, Q3) as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(Q1, Q2, Q3, Q4) as Query>::fetch`
[INFO] [stdout]    --> ecs-basic/src/query.rs:97:5
[INFO] [stdout]     |
[INFO] [stdout]  97 | /     unsafe fn fetch<'a>(
[INFO] [stdout]  98 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout]  99 | |         index: usize,
[INFO] [stdout] 100 | |     ) -> Self::Item<'a> {
[INFO] [stdout]     | |_______________________^ associated function `<(Q1, Q2, Q3, Q4) as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `ComponentBundle::init_archetype`
[INFO] [stdout]    --> ecs-basic/src/world.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     fn init_archetype(archetype: &mut crate::archetype::Archetype);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `ComponentBundle::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `ComponentBundle::insert_into`
[INFO] [stdout]    --> ecs-basic/src/world.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 119 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `ComponentBundle::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T,) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-basic/src/world.rs:128:5
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T,) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T,) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-basic/src/world.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T,) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-basic/src/world.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 143 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T1, T2) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-basic/src/world.rs:148:5
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T1, T2) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-basic/src/world.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 159 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T1, T2, T3) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-basic/src/world.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T1, T2, T3) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3, T4) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-basic/src/world.rs:182:5
[INFO] [stdout]     |
[INFO] [stdout] 182 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T1, T2, T3, T4) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3, T4) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-basic/src/world.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 189 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T1, T2, T3, T4) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-basic/src/archetype.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `entities` is never used
[INFO] [stdout]   --> ecs-basic/src/archetype.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Archetype {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn entities(&self) -> &[crate::Entity] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Health` is never constructed
[INFO] [stdout]   --> ecs-basic/src/lib.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |     struct Health(u32);
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> ecs-basic/src/world.rs:99:28
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub fn query<Q: Query>(&mut self) -> QueryIter<Q> {
[INFO] [stdout]    |                            ^^^^^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub fn query<Q: Query>(&mut self) -> QueryIter<'_, Q> {
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]     Checking ecs-slotmap v0.1.0 (/opt/rustwide/workdir/ecs-slotmap)
[INFO] [stderr]     Checking ecs-parallel v0.1.0 (/opt/rustwide/workdir/ecs-parallel)
[INFO] [stderr]     Checking serde_json v1.0.145
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> ecs-parallel/src/system.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> ecs-parallel/src/query.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         unsafe { archetype.get_component::<T>(index).unwrap() }
[INFO] [stdout]    |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `Query::fetch`
[INFO] [stdout]   --> ecs-parallel/src/query.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | /     unsafe fn fetch<'a>(
[INFO] [stdout]  9 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 10 | |         index: usize,
[INFO] [stdout] 11 | |     ) -> Self::Item<'a>;
[INFO] [stdout]    | |________________________^ associated function `Query::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<&T as Query>::fetch`
[INFO] [stdout]   --> ecs-parallel/src/query.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 37 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 38 | |         index: usize,
[INFO] [stdout] 39 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<&T as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<&mut T as Query>::fetch`
[INFO] [stdout]   --> ecs-parallel/src/query.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 56 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 57 | |         index: usize,
[INFO] [stdout] 58 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<&mut T as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(Q1, Q2) as Query>::fetch`
[INFO] [stdout]   --> ecs-parallel/src/query.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 77 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 78 | |         index: usize,
[INFO] [stdout] 79 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<(Q1, Q2) as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(Q1, Q2, Q3) as Query>::fetch`
[INFO] [stdout]    --> ecs-parallel/src/query.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 105 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 106 | |         index: usize,
[INFO] [stdout] 107 | |     ) -> Self::Item<'a> {
[INFO] [stdout]     | |_______________________^ associated function `<(Q1, Q2, Q3) as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(Q1, Q2, Q3, Q4) as Query>::fetch`
[INFO] [stdout]    --> ecs-parallel/src/query.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 143 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 144 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 145 | |         index: usize,
[INFO] [stdout] 146 | |     ) -> Self::Item<'a> {
[INFO] [stdout]     | |_______________________^ associated function `<(Q1, Q2, Q3, Q4) as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `ComponentBundle::init_archetype`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 112 |     fn init_archetype(archetype: &mut crate::archetype::Archetype);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `ComponentBundle::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `ComponentBundle::insert_into`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `ComponentBundle::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T,) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T,) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `Query::fetch`
[INFO] [stdout]   --> ecs-slotmap/src/query.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | /     unsafe fn fetch<'a>(
[INFO] [stdout]  9 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 10 | |         index: usize,
[INFO] [stdout] 11 | |     ) -> Self::Item<'a>;
[INFO] [stdout]    | |________________________^ associated function `Query::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<&T as Query>::fetch`
[INFO] [stdout]   --> ecs-slotmap/src/query.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 27 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 28 | |         index: usize,
[INFO] [stdout] 29 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<&T as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<&mut T as Query>::fetch`
[INFO] [stdout]   --> ecs-slotmap/src/query.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 42 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 43 | |         index: usize,
[INFO] [stdout] 44 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<&mut T as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(Q1, Q2) as Query>::fetch`
[INFO] [stdout]   --> ecs-slotmap/src/query.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 59 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 60 | |         index: usize,
[INFO] [stdout] 61 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<(Q1, Q2) as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(Q1, Q2, Q3) as Query>::fetch`
[INFO] [stdout]   --> ecs-slotmap/src/query.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 75 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 76 | |         index: usize,
[INFO] [stdout] 77 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<(Q1, Q2, Q3) as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(Q1, Q2, Q3, Q4) as Query>::fetch`
[INFO] [stdout]    --> ecs-slotmap/src/query.rs:99:5
[INFO] [stdout]     |
[INFO] [stdout]  99 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 100 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 101 | |         index: usize,
[INFO] [stdout] 102 | |     ) -> Self::Item<'a> {
[INFO] [stdout]     | |_______________________^ associated function `<(Q1, Q2, Q3, Q4) as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `ComponentBundle::init_archetype`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 112 |     fn init_archetype(archetype: &mut crate::archetype::Archetype);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `ComponentBundle::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `ComponentBundle::insert_into`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `ComponentBundle::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T,) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T,) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T,) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 126 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T,) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T1, T2) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T1, T2) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 153 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T1, T2, T3) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 159 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T1, T2, T3) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3, T4) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 176 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T1, T2, T3, T4) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3, T4) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:183:5
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T1, T2, T3, T4) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `entities` is never used
[INFO] [stdout]   --> ecs-slotmap/src/archetype.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Archetype {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn entities(&self) -> &[Entity] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Health` is never constructed
[INFO] [stdout]   --> ecs-slotmap/src/lib.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 |     struct Health(u32);
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T,) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 126 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T,) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T1, T2) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> ecs-slotmap/src/world.rs:93:28
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn query<Q: Query>(&mut self) -> QueryIter<Q> {
[INFO] [stdout]    |                            ^^^^^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn query<Q: Query>(&mut self) -> QueryIter<'_, Q> {
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T1, T2) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 153 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T1, T2, T3) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 159 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T1, T2, T3) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3, T4) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 176 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T1, T2, T3, T4) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3, T4) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:183:5
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T1, T2, T3, T4) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `entities` is never used
[INFO] [stdout]   --> ecs-parallel/src/archetype.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Archetype {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn entities(&self) -> &[Entity] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> ecs-parallel/src/world.rs:93:28
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn query<Q: Query>(&mut self) -> QueryIter<Q> {
[INFO] [stdout]    |                            ^^^^^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn query<Q: Query>(&mut self) -> QueryIter<'_, Q> {
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `Query::fetch`
[INFO] [stdout]   --> ecs-slotmap/src/query.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | /     unsafe fn fetch<'a>(
[INFO] [stdout]  9 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 10 | |         index: usize,
[INFO] [stdout] 11 | |     ) -> Self::Item<'a>;
[INFO] [stdout]    | |________________________^ associated function `Query::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<&T as Query>::fetch`
[INFO] [stdout]   --> ecs-slotmap/src/query.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 27 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 28 | |         index: usize,
[INFO] [stdout] 29 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<&T as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<&mut T as Query>::fetch`
[INFO] [stdout]   --> ecs-slotmap/src/query.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 42 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 43 | |         index: usize,
[INFO] [stdout] 44 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<&mut T as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(Q1, Q2) as Query>::fetch`
[INFO] [stdout]   --> ecs-slotmap/src/query.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 59 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 60 | |         index: usize,
[INFO] [stdout] 61 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<(Q1, Q2) as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(Q1, Q2, Q3) as Query>::fetch`
[INFO] [stdout]   --> ecs-slotmap/src/query.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 75 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 76 | |         index: usize,
[INFO] [stdout] 77 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<(Q1, Q2, Q3) as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(Q1, Q2, Q3, Q4) as Query>::fetch`
[INFO] [stdout]    --> ecs-slotmap/src/query.rs:99:5
[INFO] [stdout]     |
[INFO] [stdout]  99 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 100 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 101 | |         index: usize,
[INFO] [stdout] 102 | |     ) -> Self::Item<'a> {
[INFO] [stdout]     | |_______________________^ associated function `<(Q1, Q2, Q3, Q4) as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `ComponentBundle::init_archetype`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 112 |     fn init_archetype(archetype: &mut crate::archetype::Archetype);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `ComponentBundle::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `ComponentBundle::insert_into`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `ComponentBundle::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T,) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T,) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T,) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 126 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T,) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T1, T2) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T1, T2) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 153 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T1, T2, T3) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 159 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T1, T2, T3) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3, T4) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 176 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T1, T2, T3, T4) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3, T4) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-slotmap/src/world.rs:183:5
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T1, T2, T3, T4) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-slotmap/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `entities` is never used
[INFO] [stdout]   --> ecs-slotmap/src/archetype.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Archetype {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn entities(&self) -> &[Entity] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> ecs-slotmap/src/world.rs:93:28
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn query<Q: Query>(&mut self) -> QueryIter<Q> {
[INFO] [stdout]    |                            ^^^^^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn query<Q: Query>(&mut self) -> QueryIter<'_, Q> {
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `(_, _)`
[INFO] [stdout]   --> ecs-slotmap/src/main.rs:56:10
[INFO] [stdout]    |
[INFO] [stdout] 56 |         |(pos, vel)| {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 57 |             pos.x += vel.dx;
[INFO] [stdout]    |             --- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type, where the placeholders `_` are specified
[INFO] [stdout]    |
[INFO] [stdout] 56 |         |(pos, vel): (_, _)| {
[INFO] [stdout]    |                    ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> ecs-parallel/src/system.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> ecs-parallel/src/query.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         unsafe { archetype.get_component::<T>(index).unwrap() }
[INFO] [stdout]    |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `into_system` found for closure `{closure@ecs-slotmap/src/main.rs:76:10: 76:25}` in the current scope
[INFO] [stdout]   --> ecs-slotmap/src/main.rs:85:10
[INFO] [stdout]    |
[INFO] [stdout] 76 | /         (|w: &mut World| {
[INFO] [stdout] 77 | |             println!("\n=== Frame ===");
[INFO] [stdout] 78 | |             for (pos, health) in w.query::<(&Position, &Health)>() {
[INFO] [stdout] 79 | |                 println!(
[INFO] [stdout] ...  |
[INFO] [stdout] 84 | |         })
[INFO] [stdout] 85 | |         .into_system(),
[INFO] [stdout]    | |         -^^^^^^^^^^^ method not found in `{closure@ecs-slotmap/src/main.rs:76:10: 76:25}`
[INFO] [stdout]    | |_________|
[INFO] [stdout]    |
[INFO] [stdout]    |
[INFO] [stdout]   ::: ecs-slotmap/src/system.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 |       fn into_system(self) -> Self::System;
[INFO] [stdout]    |          ----------- the method is available for `{closure@ecs-slotmap/src/main.rs:76:10: 76:25}` here
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `IntoSystem` which provides `into_system` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use ecs_slotmap::IntoSystem;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ecs-slotmap` (bin "ecs-slotmap") due to 2 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0282]: type annotations needed for `(_, _)`
[INFO] [stdout]   --> ecs-slotmap/src/main.rs:56:10
[INFO] [stdout]    |
[INFO] [stdout] 56 |         |(pos, vel)| {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 57 |             pos.x += vel.dx;
[INFO] [stdout]    |             --- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type, where the placeholders `_` are specified
[INFO] [stdout]    |
[INFO] [stdout] 56 |         |(pos, vel): (_, _)| {
[INFO] [stdout]    |                    ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `into_system` found for closure `{closure@ecs-slotmap/src/main.rs:76:10: 76:25}` in the current scope
[INFO] [stdout]   --> ecs-slotmap/src/main.rs:85:10
[INFO] [stdout]    |
[INFO] [stdout] 76 | /         (|w: &mut World| {
[INFO] [stdout] 77 | |             println!("\n=== Frame ===");
[INFO] [stdout] 78 | |             for (pos, health) in w.query::<(&Position, &Health)>() {
[INFO] [stdout] 79 | |                 println!(
[INFO] [stdout] ...  |
[INFO] [stdout] 84 | |         })
[INFO] [stdout] 85 | |         .into_system(),
[INFO] [stdout]    | |         -^^^^^^^^^^^ method not found in `{closure@ecs-slotmap/src/main.rs:76:10: 76:25}`
[INFO] [stdout]    | |_________|
[INFO] [stdout]    |
[INFO] [stdout]    |
[INFO] [stdout]   ::: ecs-slotmap/src/system.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 |       fn into_system(self) -> Self::System;
[INFO] [stdout]    |          ----------- the method is available for `{closure@ecs-slotmap/src/main.rs:76:10: 76:25}` here
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `IntoSystem` which provides `into_system` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout]  1 + use ecs_slotmap::IntoSystem;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `Query::fetch`
[INFO] [stdout]   --> ecs-parallel/src/query.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | /     unsafe fn fetch<'a>(
[INFO] [stdout]  9 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 10 | |         index: usize,
[INFO] [stdout] 11 | |     ) -> Self::Item<'a>;
[INFO] [stdout]    | |________________________^ associated function `Query::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<&T as Query>::fetch`
[INFO] [stdout]   --> ecs-parallel/src/query.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 37 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 38 | |         index: usize,
[INFO] [stdout] 39 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<&T as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0599.
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<&mut T as Query>::fetch`
[INFO] [stdout]   --> ecs-parallel/src/query.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 56 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 57 | |         index: usize,
[INFO] [stdout] 58 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<&mut T as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(Q1, Q2) as Query>::fetch`
[INFO] [stdout]   --> ecs-parallel/src/query.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 77 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 78 | |         index: usize,
[INFO] [stdout] 79 | |     ) -> Self::Item<'a> {
[INFO] [stdout]    | |_______________________^ associated function `<(Q1, Q2) as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) struct Archetype {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(Q1, Q2, Q3) as Query>::fetch`
[INFO] [stdout]    --> ecs-parallel/src/query.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 105 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 106 | |         index: usize,
[INFO] [stdout] 107 | |     ) -> Self::Item<'a> {
[INFO] [stdout]     | |_______________________^ associated function `<(Q1, Q2, Q3) as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(Q1, Q2, Q3, Q4) as Query>::fetch`
[INFO] [stdout]    --> ecs-parallel/src/query.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 143 | /     unsafe fn fetch<'a>(
[INFO] [stdout] 144 | |         archetype: &'a mut crate::archetype::Archetype,
[INFO] [stdout] 145 | |         index: usize,
[INFO] [stdout] 146 | |     ) -> Self::Item<'a> {
[INFO] [stdout]     | |_______________________^ associated function `<(Q1, Q2, Q3, Q4) as Query>::fetch` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `ComponentBundle::init_archetype`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 112 |     fn init_archetype(archetype: &mut crate::archetype::Archetype);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `ComponentBundle::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `ComponentBundle::insert_into`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `ComponentBundle::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T,) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T,) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T,) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 126 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T,) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T1, T2) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T1, T2) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 153 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T1, T2, T3) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 159 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T1, T2, T3) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3, T4) as ComponentBundle>::init_archetype`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 176 |     fn init_archetype(archetype: &mut crate::archetype::Archetype) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `<(T1, T2, T3, T4) as ComponentBundle>::init_archetype` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Archetype` is more private than the item `<(T1, T2, T3, T4) as ComponentBundle>::insert_into`
[INFO] [stdout]    --> ecs-parallel/src/world.rs:183:5
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn insert_into(self, archetype: &mut crate::archetype::Archetype, index: usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<(T1, T2, T3, T4) as ComponentBundle>::insert_into` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `Archetype` is only usable at visibility `pub(crate)`
[INFO] [stdout]    --> ecs-parallel/src/archetype.rs:7:1
[INFO] [stdout]     |
[INFO] [stdout]   7 | pub(crate) struct Archetype {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `entities` is never used
[INFO] [stdout]   --> ecs-parallel/src/archetype.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Archetype {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn entities(&self) -> &[Entity] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Health` is never constructed
[INFO] [stdout]   --> ecs-parallel/src/lib.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 |     struct Health(u32);
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> ecs-parallel/src/world.rs:93:28
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn query<Q: Query>(&mut self) -> QueryIter<Q> {
[INFO] [stdout]    |                            ^^^^^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn query<Q: Query>(&mut self) -> QueryIter<'_, Q> {
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ecs-slotmap` (bin "ecs-slotmap" test) due to 2 previous errors
[INFO] running `Command { std: "docker" "inspect" "9f22a09d18875750b8e391d6288543dc7571e4a251679802bdfc91d112f1ada0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9f22a09d18875750b8e391d6288543dc7571e4a251679802bdfc91d112f1ada0", kill_on_drop: false }`
[INFO] [stdout] 9f22a09d18875750b8e391d6288543dc7571e4a251679802bdfc91d112f1ada0
